$[] و bc در آزمونهای عملی بسیار پرتکرار است.فرض کن میخوای تو یه ماشین حساب یه سری عملیات ریاضی انجام بدی. توی لینوکس، دو تا راه داری: یکی برای اعداد صحیح (مثل ۵، ۱۰، ۲۰-) و یکی برای اعداد اعشاری (مثل ۳.۱۴، ۲.۵). این جلسه بهت یاد میده چطور هر دو نوع محاسبه رو انجام بدی!
در Bash دو روش اصلی برای انجام محاسبات ریاضی وجود دارد:
$[ ]+، -، *، /، ** پشتیبانی میکند.result=$[ 25 * 5 ]bcscale تعداد ارقام اعشار را کنترل میکند.echo "scale=4; 3.44 / 5" | bc$[ ])
برای انجام محاسبات ساده روی اعداد صحیح از براکت $[ ] استفاده میشود. این روش در Bash بسیار رایج و کارآمد است.
| عملگر | معنی | مثال |
|---|---|---|
+ |
جمع | $[ 10 + 5 ] → ۱۵ |
- |
تفریق | $[ 10 - 5 ] → ۵ |
* |
ضرب | $[ 10 * 5 ] → ۵۰ |
/ |
تقسیم | $[ 10 / 3 ] → ۳ (بخش صحیح) |
** |
توان | $[ 2 ** 3 ] → ۸ |
% |
باقیمانده (Modulo) | $[ 10 % 3 ] → ۱ |
توضیح: 25 * 5 محاسبه شده و نتیجه در متغیر result ذخیره شده است.
توضیح: 25 + 5 محاسبه شده و نتیجه در متغیر result ذخیره شده است.
توضیح: 2 ** 5 یعنی ۲ به توان ۵ که میشود ۳۲.
$[ ] فقط با اعداد صحیح کار میکند. اگر از اعداد اعشاری استفاده کنید، خطا میدهد.
$[ ] بین عملگرها و اعداد فاصله مجاز است (برخلاف تعریف متغیر که فاصله ممنوع است).
$[ ]
توضیح: میتوانید از نام متغیرها (بدون $) داخل $[ ] استفاده کنید.
توضیح: میتوانید با $ هم از متغیرها استفاده کنید (هر دو روش مجاز است).
bc)
bc (مخفف Basic Calculator) یک ماشین حساب کامل در ترمینال است که از اعداد اعشاری، عملیات پیشرفته و اسکریپتنویسی پشتیبانی میکند.
bc برای محاسبات با دقت بالا و اعداد اعشاری استفاده میشود. با scale تعداد ارقام اعشار را مشخص میکنیم.
bc در خط فرمان
توضیح: bc یک محیط تعاملی است. با scale=4 تعداد ارقام اعشار را ۴ قرار میدهیم.
bc در یک خط (با Pipe)
توضیح: با | (Pipe) عبارت را به bc میدهیم و نتیجه را دریافت میکنیم.
توضیح: خروجی bc در متغیر result ذخیره شده است.
bc استفاده کنید. $[ ] فقط برای اعداد صحیح کار میکند.
bc
توضیح: با گزینه -l کتابخانه ریاضی فعال میشود و توابعی مانند sqrt() در دسترس هستند.
bc با متغیرها| ویژگی | $[ ] |
bc |
|---|---|---|
| اعداد صحیح | ✅ بله | ✅ بله |
| اعداد اعشاری | ❌ خیر | ✅ بله |
| سرعت | ⚡ سریع | 🐢 کمی کندتر |
| توابع ریاضی (sqrt, sin, ...) | ❌ خیر | ✅ بله (با -l) |
| کنترل دقت اعشار | ❌ خیر | ✅ بله (با scale) |
| استفاده در اسکریپت | ✅ بسیار راحت | ✅ با $(...) راحت است |
$[ ] → برای محاسبات سریع با اعداد صحیح.bc → برای محاسبات دقیق با اعداد اعشاری و توابع ریاضی.scale → در bc تعداد ارقام اعشار را مشخص میکند.-l → در bc کتابخانه ریاضی را فعال میکند.|) → برای ارسال عبارت به bc استفاده میشود.یک اسکریپت بنویسید که:
bc محاسبه کند.scale=2 نتیجه را تا ۲ رقم اعشار نمایش دهد.$[ ] توان دوم (به توان ۲) هر دو عدد را محاسبه کند.